package czStvDpds.mapmanagment;

/**
 * Představuje dlaždici v dlaždicové mapě. Dlaždice je čtverec s danou délkou,
 * tyto čtverce dohromady v dvojrozměrném poli tvoří mapu. Každá dlaždice má
 * zatím jen svoje ID a svůj boolean SOLID, které jsou popsány níže, později
 * bude mít i více vlastností, jako např. poškození při styku s hráčem atd.
 *
 * @author Jirka
 */
public class Tile {

    /**
     * ID dlaždice. ID dlaždice slouží k rozpoznání, o jakou dlaždici jde (jaký
     * obrázek se má vykreslit). ID dlaždice je nastaveno při nahrání mapy a
     * nemělo by se v průběhu hry měnit.
     *
     * PS: Bude muset existovat nějaký seznam ID aby se vědělo jaké ID znamená
     * co
     */
    private int id;

    public int getId() {
        return id;
    }
    /**
     * Boolean solid určuje, zda je dlaždice pevná (zeď, skála atd.) nebo zda je
     * dlaždice průchodná (voda, křoví atd.), tudíž zda při srážce s hráčem
     * vyvolá kolizi. Tato proměnná je nastavena při nahrání mapy a neměla by se
     * v průběhu hry měnit.
     */
    private boolean solid;

    public boolean isSolid() {
        return solid;
    }
    /**
     * Boolean allowsBulltesThrough určuje, zda je dlaždice průstřelná (vzduch,
     * plot) nebo neprůstřelná (zeď, neprůstřelné sklo). Tato proměnná je
     * nastavena při nahrávání mapy a neměla by se v průběhu hry měnit.
     */
    private boolean allowsBulletsThrough;

    public boolean isAllowsBulletsThrough() {
        return allowsBulletsThrough;
    }
    /**
     * Boolean destructible, zda-li se blok dá zničit (výbuchem, kulkami) nebo
     * ne. Tato proměnná je nastavena při nahrávání mapy a neměla by se v
     * průběhu hry měnit.
     */
    private boolean destructible;

    public boolean isDestructible() {
        return destructible;
    }

    /**
     * Vytvoří novou dlaždici se zadanými parametry.
     *
     * @param id
     * @param solid
     */
    public Tile(int id, boolean solid, boolean allowsBulletsThrough, boolean destructible) {
        this.id = id;
        this.solid = solid;
        this.allowsBulletsThrough = allowsBulletsThrough;
        this.destructible = destructible;
    }
}
